Method and apparatus for dimensioning box object

ABSTRACT

A method to determine the volume of a box object from the captured image of the box object. The method includes identifying a geometric mark on the box object in the captured image to find the positions of two reference points of the geometric mark. The two reference points are separated by a predetermined distance. The method also includes processing a group of parameters and a predetermined mapping obtained from a calibration process. The group of parameters includes the positions of the two reference points and the predetermined distance separating the two reference points.

BACKGROUND

While many imaging systems can be used to capture images of a boxobject, most of the imaging systems do not have the functions toestimate the volume or the three box dimensions (i.e., the length, thewidth, and the height) of the box object from the captured images. Thereis a need for a method and apparatus for determining sizes of a boxobject conveniently based on image processing principles.

BRIEF DESCRIPTION OF THE FIGURES

The accompanying figures, where like reference numerals refer toidentical or functionally similar elements throughout the separateviews, together with the detailed description below, are incorporated inand form part of the specification, and serve to further illustrateembodiments of concepts that include the claimed invention, and explainvarious principles and advantages of those embodiments.

FIG. 1A and FIG. 1B are examples of imaging systems in accordance withsome embodiments.

FIG. 2 is a schematic of an imaging system in accordance with someembodiments.

FIG. 3 shows that a barcode placed on the surface of a box object.

FIG. 4A is an example of a display screen that shows a captured image ofthe box object with the geometric mark on one face of the box object inaccordance with some embodiments.

FIG. 4B is an example of a display screen on which the box dimensionsand the volume of the box object are displayed in accordance with someembodiments.

FIG. 5A shows a captured image of a box object in accordance with someEmbodiments.

FIG. 5B shows some edge lines in the captured image in accordance withsome embodiments

FIG. 5C shows some points in the captured image that are selected ascandidates for using as the corner points of the box object inaccordance with some embodiments.

FIG. 6 is a flowchart showing one method of identifying corner points inthe captured image in accordance with some embodiments.

FIG. 7 is a flowchart showing a method of finding the volume of the boxobject in accordance with some embodiments.

FIG. 8 shows the box object in a device coordinate O{circumflex over(X)}Ŷ{circumflex over (Z)} in accordance with some embodiments.

FIG. 9A shows a calibration matrix for a first example imaging system inaccordance with some embodiments, and FIG. 9B shows a calibration matrixfor a second example imaging system in accordance with some embodiments.

FIG. 10A shows the positions of the corner points of the box object inthe captured image and the lines for identifying the edges of the boxobject in accordance with some embodiments.

FIG. 10B shows the vanishing lines and vanishing points in the capturedimage are obtained in accordance with some embodiments.

FIGS. 11A-11B and FIG. 12 illustrate an alternative embodiment fordetermining the normal vector of a face of the box object in accordancewith some embodiments.

Skilled artisans will appreciate that elements in the figures areillustrated for simplicity and clarity and have not necessarily beendrawn to scale. For example, the dimensions of some of the elements inthe figures may be exaggerated relative to other elements to help toimprove understanding of embodiments of the present invention.

The apparatus and method components have been represented whereappropriate by conventional symbols in the drawings, showing only thosespecific details that are pertinent to understanding the embodiments ofthe present invention so as not to obscure the disclosure with detailsthat will be readily apparent to those of ordinary skill in the arthaving the benefit of the description herein.

DETAILED DESCRIPTION

A method includes detecting light from a box object through an imaginglens arrangement with an imaging sensor having two-dimensionalphotosensitive elements to capture at least one image of the box object.The box object has the shape of a rectangular solid. The method alsoincludes identifying at least six corners of the box object to find thepositions of the at least six corners in the at least one image, andidentifying a geometric mark with fixed dimensions on the box object inthe at least one image to find the positions of at least two referencepoints of the geometric mark in the at least one image. The at least tworeference points are separated by a predetermined distance. The methodstill includes processing a group of parameters and a predeterminedmapping to determine one of (a) the volume of the box object and (b) thebox dimensions of the box object. The box dimensions include the width,the length, and the height of the box object. The group of parametersincludes (1) the positions of the at least six corners in the at leastone image, (2) the positions of the at least two reference points in theat least one image, and (3) the predetermined distance separating the atleast two reference points. The predetermined mapping is operative toestablish a one-to-one corresponding relationship between a point in animage plane of the imaging sensor and a point in a reference plane inphysical space.

There are many imaging systems that can be used to capture images of abox object. Examples of these imaging systems include the tabletcomputer as shown in FIG. 1A, and the imaging scanner 50 as shown inFIG. 1B. Other examples of imaging systems are a digital camera and acellular telephone. FIG. 1B shows an imaging scanner 50 forimplementation of the present invention. The imaging scanner 50 has awindow 56 and a housing 58 with a handle. The imaging scanner 50 alsohas a base 52 for supporting itself on a countertop. The imaging scanner50 can be used in a hands-free mode as a stationary workstation when itis placed on the countertop. The imaging scanner 50 can also be used ina handheld mode when it is picked up off the countertop and held in anoperator's hand. In the hands-free mode, products can be slid, swipedpast, or presented to the window 56. In the handheld mode, the imagingscanner 50 can be moved towards a barcode on a product, and a trigger 54can be manually depressed to initiate imaging of the barcode. In someimplementations, the base 52 can be omitted, and the housing 58 can alsobe in other shapes. In FIG. 1B, a cable is also connected to the base52. In other implementations, when the cable connected to the base 52 isomitted, the imaging scanner 50 can be powered by an on-board batteryand it can communicate with a remote host by a wireless link.

FIG. 2 is a schematic of an imaging system 50 in accordance with someembodiments. The imaging system 50 in FIG. 2 includes the followingcomponents: (1) an imaging sensor 62 positioned behind an imaging lensarrangement 60; (2) an illuminating lens arrangement 70 positioned infront of an illumination source 72; and (3) a controller 90. In FIG. 2,the imaging sensor 62 is mounted on a printed circuit board 91 in theimaging system.

The imaging sensor 62 can be a CCD or a CMOS imaging device. The imagingsensor 62 generally includes multiple pixel elements. These multiplepixel elements can be formed by a two-dimensional array ofphotosensitive elements arranged in mutually orthogonal rows andcolumns. The imaging sensor 62 is operative to detect light captured byan imaging lens arrangement 60 along an optical path or axis 61 throughthe window 56. Generally, the imaging sensor 62 and the imaging lensarrangement 60 are designed to operate together for capturing lightscattered or reflected from a target object (e.g., the box object 30) aspixel data over a two-dimensional imaging field of view (FOV).

In many operation environments, as shown in FIG. 3, the barcode 40 isplaced on one or more sides of a box object 30, and the imaging system50 is often used to decode the barcode 40 for identifying the box objector finding other information of the box object. In some operationenvironments, the user also has to estimate the dimensions or the volumeof the box object using additional equipment. It is recognized that itwould be desirable to use the imaging system 50 to perform the functionof estimating the dimensions or the volume of the box object 30.

In accordance with some embodiments, if the size of the barcode 40(e.g., its width or its length) is known, the volume or the three boxdimensions (i.e., the length, the width, and the height) of the boxobject 30 can be estimated if the box object 30 and the barcode 40 areboth captured in an image by the imaging system 50. In general, if thedistance between two points on a geometric mark 35 on the box object 30is known, the volume or the three box dimensions of the box object 30can be estimated from the image of the box object 30 as captured by theimaging system 50. Examples of the geometric mark 35 include aone-dimensional barcode, a two-dimensional barcode, a logo, a shippinglabel, or the combination of isolated point marks printed on the face ofthe box object 30.

FIG. 4A is an example of a display screen 98 that shows a captured imageof the box object 30 with the geometric mark 35 on one face of the boxobject 30 in accordance with some embodiments. In this example, thegeometric mark 35 has the shape of a rectangular solid, and two cornerpoints of the geometric mark 35 are used as two reference points “P” and“Q” on a surface of the box object 30 as shown in FIG. 3. In FIG. 4A,these two reference points in the captured image are labeled as “p” and“q”. The positions of these two reference points in the captured imagecan be identified automatically with the imaging system 50 by performingcertain image processing algorithm on the captured image as in FIG. 4A.In some implementations, after an identified position is displayed onthe display screen 98 as shown in FIG. 4A, the identified position canbe confirmed by a user. In some implementations, the positions of thereference points in the captured image can be identified by the usermanually; for example, the user can visually choose a user-selectedposition on the display screen as the identified position, after thecaptured image is displayed on the display screen. In some embodiments,more than two reference points are used for performing requiredcalculation or algorithm, the position of any of these more than tworeference points in the captured image can be identified automaticallywith the imaging system 50 or identified by the user manually on thedisplay screen 98.

Similarly, the box object in the captured image can be identified by thesix corners v₀, v₁, v₂, v₃, v₄, and v₅, and the positions of these sixcorner points of the box object in the captured image can be identifiedautomatically with the imaging system 50 by performing certain imageprocessing algorithm on the captured image as shown in FIGS. 5A-5C.Specifically, FIG. 5A shows a captured image of a box object, FIG. 5Bshows that some edge lines in the captured image are determined, andFIG. 5C shows that some points in the captured image (e.g., some crosspoints of the edge lines) are selected as candidates for using as thecorner points of the box object.

FIG. 6 a flowchart showing one method of identifying corner points inthe captured image in accordance with some embodiments. The imageprocessing algorithm used in FIG. 6 includes smoothing such as GaussianBlur, detection such as Canny algorithm, Hough transform algorithm withcontour detection, Convex Hull algorithm, and box corners detection. Itwill be appreciated by those of ordinary skill in the art that otherimage processing algorithms may be alternatively used for automaticallyidentifying the corner points. In some implementations, after anidentified position is displayed on the display screen, such identifiedposition can be confirmed by the user. In some implementations, thepositions of the corner points of the box object in the captured imagecan be identified by the user manfully; for example, the user canvisually chose a user-selected position on the display screen as theidentified position, after the captured image is displayed on thedisplay screen.

Once the positions of the six corners (e.g., v₀, v₁, v₂, v₃, v₄, andv₅,) and the positions of the two reference points (e.g., “p” and “q”)in the captured image are known, the volume of the box object 30 can bedetermined by the imaging system 50, provided that the physical distanceseparating the two reference points “P” and “Q” on the surface of thebox object 30 has been predetermined and the imaging system 50 has beenproperly calibrated.

FIG. 7 is a flowchart showing a method 200 of finding the volume of thebox object 30 in accordance with some embodiments. The method 200includes blocks 210, 220, 230, 260, 270, 280, and 290. At block 210, theimaging system 50 is calibrated. At block 220, an image of the boxobject 30 is captured (e.g., as shown in FIG. 4A). At block 230, sixcorners of the box object and two reference points on a surface of thebox object are identified to find the positions of the six corners andthe positions of the two reference points in the captured image (e.g.,as shown in FIG. 4A). At block 260, the surface orientation of threefaces the box object 30 are determined (e.g., the three faces F₀, F₁,and F₂, as shown in FIG. 3). At block 270, the positions of at leastfour corner points of the box object in object space are determined(e.g., four corner points V₀, V₁, V₂, V₃, as shown in FIG. 3). At block280, the volume of the box object 30 is determined (e.g., using theheight H, the width W, and the length L, as shown in FIG. 3). At block290, the volume of the box object is displayed on a display screen(e.g., as shown in FIG. 4B).

In some implementations, before the box dimensions are displayed on thedisplay screen as shown in FIG. 4B, the captured image of the box object30 is displayed on the display screen as shown in FIG. 4A. In someimplementations, after the image of the box object 30 is captured, thecaptured image of the box object 30 is displayed on the display screento allow a user to select or confirm the corner points of the box objectin the captured image and to select or confirm the reference points onthe surface of the box object in the captured image. The user caninitiate the calculation of the box dimensions or the calculation of thebox dimensions the volume by clicking on the soft menus on the display,such as, the graphics icons labeled “Measure” and “Retry” as shown inFIG. 4A.

In the following, the operations in the method 200 of FIG. 7 areexplained in more details. In particular, the operations in block 210,the block 260, and the block 270 are explained in more details withreferring to FIG. 8. FIG. 8 shows the box object 30 in a devicecoordinate O{circumflex over (X)}Ŷ{circumflex over (Z)} in accordancewith some embodiments. In some implementations, the device coordinateO{circumflex over (X)}Ŷ{circumflex over (Z)} is fixed relative to theimaging system 50. The box object 30 includes corner points V₀, V₁, V₂,V₃, V₄, V₅, and M₀. The box object 30 also includes faces F₀, F₁, andF₂, with corresponding normal vectors {right arrow over (N)}₀, {rightarrow over (N)}₁, and {right arrow over (N)}₂ respectively. There aretwo reference points “P” and “Q” on a surface of the box object 30. Insome embodiments, the two reference points “P” and “Q” can be selectedfrom two identifiable points on a geometric mark, such as the cornerpoints of a barcode, a logo, or a shipping label.

In FIG. 7, at block 210, the imaging system 50 is calibrated. For eachimaging system, calibration is needed to determine a mapping that isoperative to establish a one-to-one corresponding relationship between apoint in an image plane of the imaging sensor and a point in a referenceplane in physical space. In some implementations, the reference plane inphysical space can be a plane located at a known position and orientatedperpendicular to the optical axis of the imaging system. In FIG. 8, thereference plane 110 can be described by equation Z=U₀ in the devicecoordinate O{circumflex over (X)}Ŷ{circumflex over (Z)}. In someimplementations, the calibration process at block 210 can be used todetermine a mapping that maps a pixel point (x, y) in the imaging sensorto a point (x′, y′, U₀) on the reference plane 110 in the devicecoordinate O{circumflex over (X)}Ŷ{circumflex over (Z)}. Any point onthe light ray 120 can be identified as (x′Z/U₀, y′Z/U₀, Z), and lightfrom such point will strike on the pixel point (x, y) in the imagingsensor. In some implementations, the reference plane 110 is selected tobe at one unit distance from the origin “O” of the device coordinateO{circumflex over (X)}Ŷ{circumflex over (Z)}, that is, U₀=1.

In some implementations, the mapping that maps a pixel point (x, y) inthe imaging sensor to a point (x′, y′, 1) on the reference plane 110 inthe device coordinate O{circumflex over (X)}Ŷ{circumflex over (Z)} canbe equivalent to a 3×3 matrix that maps a point (x y 1)^(T) in ahomogeneous coordinate to a point (x′ y′ 1)^(T) on the reference plane110 in the device coordinate O{circumflex over (X)}Ŷ{circumflex over(Z)}. This 3×3 matrix can be represented by the product of the matrix Rand the matrix K⁻¹, that is,(x′y′1)T=RK ⁻¹(xy1)^(T),Here, the matrix R is the reflection matrix and the matrix K⁻¹ is theinverse of matrix K,

${K = \begin{pmatrix}\alpha_{x} & \gamma & u \\0 & \alpha_{y} & v \\0 & 0 & 1\end{pmatrix}},{{{and}\mspace{14mu} R} = {\begin{pmatrix}1 & 0 & 0 \\0 & {- 1} & 0 \\0 & 0 & 1\end{pmatrix}.}}$Generally, the matrix K, which maps a point (x y 1)^(T) in a homogeneouscoordinate to a point (x′ y′ 1)^(T) in the device coordinate {circumflexover (X)}Ŷ{circumflex over (Z)}, can be determined at block 210 in FIG.7 by following some well established procedures. For example, somechessboard pattern can be presented to the imaging system 50, and thematrix K can be determined by invoking some calibration routines. Thematrix K needs to be calibrated for each of different type of devices.For example, FIG. 9A shows a calibration matrix for a first exampleimaging system that is in the form of a digital camera implemented on atablet computer, and FIG. 9B shows a calibration matrix for a firstexample imaging system that is in the form of a digital cameraimplemented on a smartphone.

It should be noted that the matrix K is just one example representationof a mapping that is operative to establish a one-to-one correspondingrelationship between a point in an image plane of the imaging sensor anda point in a reference plane in physical space, other representationsare also possible, and there are other methods to establish a one-to-onecorresponding relationship between a point in an image plane of theimaging sensor and a point in a reference plane in physical space. Theimaging system can be calibrated before the imaging system is used tocapture the image of the box object 30. The imaging system can also becalibrated after the imaging system is used to capture the image of thebox object 30.

In FIG. 7, at block 220 of the method 200, an image of the box object 30is captured. In some implementations, such image can be a single imagecaptured by the imaging system after receiving a triggering event, suchas, the pulling of a trigger. In some implementations, such image can bea frame selected from a stream of video frames. In some implementations,such image can be a processed image that is obtained from someimage-processing process operating on multiple images; each of themultiple images can be a frame selected from a stream of video frames.In some implementations, consecutive frames of the same object capturedby the same imaging system can be used to auto-calibrate the device andestimate the measurement error of the measured object.

In FIG. 7, after the image of the box object 30 is captured, at block230 of the method 200, six corners of the box object and two referencepoints on a surface of the box object are identified (e.g., as shown inFIG. 4A) to find the positions of the six corners (e.g., v₀, v₁, v₂, v₃,v₄, and v₅) and the positions of the two reference points (e.g., “p”and“q”) in the captured image.

In FIG. 7, at block 260 of the method 200, the normal vectors {rightarrow over (N)}₀, {right arrow over (N)}₁, and {right arrow over(N)}₂—which are respectively corresponding to faces F₀, F₁, and F₂ ofthe box object 30 as shown in FIG. 8—are determined Specifically, asshown in FIG. 10A, using the positions of the six corner points (e.g.,v₀, v₁, v₂, v₃, v₄, and v₅) of the box object, the location and theorientation of the lines (e.g., e₀, e₁, e₂, e₃, e₄, and e₅) foridentifying the edges of the box object can be obtained. Using theselines e₀, e₁, e₂, e₃, e₄, and e₅, the normal vectors {right arrow over(N)}₀, {right arrow over (N)}₁, and {right arrow over (N)}₂ can bedetermined.

People skilled in the art may find many methods to find the normalvectors {right arrow over (N)}₀, {right arrow over (N)}₁, and {rightarrow over (N)}₂ from the positions of the six corner points v₀, v₁, v₂,v₃, v₄, and v₅ in the captured image. One of such methods relies on thetechnique of multiple view geometry, as descried, for example, by R. I.Hartley and A. Zisserman, in a reference titled “Multiple View Geometryin Computer Vision”, published by Cambridge University Press, 2000.

With multiple view geometry, points and lines are represented by vectorsin projective space. As shown in FIG. 10A and FIG. 10B, each of thevanishing points {right arrow over (ω)}_(i) can be calculated from thecross product of two lines selected from lines {right arrow over (e)}₀,{right arrow over (e)}₁, {right arrow over (e)}₂, {right arrow over(e)}₃, {right arrow over (e)}₄, and {right arrow over (e)}₅; that is,{right arrow over (ω)}_(i)={right arrow over (e)}_(i)×{right arrow over(e)}_(i+3), for i=0, 1, and 2. As shown in FIG. 10B, each of thevanishing lines {right arrow over (λ)}_(i) can be calculated from thecross product of two vanishing points selected from vanishing points{right arrow over (ω)}₀, {right arrow over (ω)}₁, and ω₂; that is,{right arrow over (λ)}_(i)=ω_(i)×{right arrow over (ω)}_((i+3)mod 3),for i=0, 1, and 2. The normal vectors {right arrow over (N)}₀, {rightarrow over (N)}₁, and {right arrow over (N)}₂ can be calculated from thevanishing lines {right arrow over (λ)}_(i) and the matrix K that maps apoint (x y 1)^(T) in a homogeneous coordinate to a point (x′ y′ 1)^(T)in the device coordinate O{circumflex over (X)}Ŷ{circumflex over (Z)}.Specifically, with a representation in which {right arrow over(N)}_(i)=(A_(i) B_(i) C_(i))^(T) and {right arrow over (λ)}_(i)=(λ_(ix)λ_(iy) λ_(iz))^(T), the normal vector is given by the followingequation:

${\begin{pmatrix}A_{i} & B_{i} & C_{i}\end{pmatrix}^{T} = {\frac{1}{{RK}^{T}}{{RK}^{T}\begin{pmatrix}\lambda_{ix} & \lambda_{iy} & \lambda_{iz}\end{pmatrix}}^{T}}},$for i=0, 1, and 2, with R being the reflection matrix.

In the method 200 as shown in FIG. 7, after the normal vectors {rightarrow over (N)}₀, {right arrow over (N)}₁, and {right arrow over (N)}₂are determined at block 260, the positions of at least four cornerpoints of the box object 30 in object space is determined at block 270.In the device coordinate O{circumflex over (X)}Ŷ{circumflex over (Z)},as shown in FIG. 8, any point (X Y Z)^(T) on the faces F₀, F₁, or F₂ ofthe box object 30 needs to satisfy one of the corresponding linearequations A_(i)X+B_(i)Y+C_(i)Z=D₁, with i=0, 1, or 2. The position ofsuch point (X Y Z)^(T) in the device coordinate can be determined fromthe position (x, y) of its corresponding point in the captured image:(XYZ)^(T)=(x′Zy′ZZ)^(T)=(x′y′1)^(T) Z,where (x′ y′ 1)^(T)=RK⁻¹(x y 1)^(T).

After the normal vectors {right arrow over (N)}₀, {right arrow over(N)}₁, and {right arrow over (N)}₂ are determined, if the distance L₀between the two reference points “P” and “Q” on the surface of the boxobject 30 is also known, it will be possible to determine the remainingunknown parameters D₀, D₁, and D₂ for describing all three faces F₀, F₁,and F₂ with linear equations A_(i)X+B_(i)Y+C_(i)Z=D. In the devicecoordinate O{circumflex over (X)}Ŷ{circumflex over (Z)}, as shown inFIG. 8, the position of the reference point “P” is (X_(P) Y_(P)Z_(P))^(T), and the position of the reference point “Q” is (X_(Q) Y_(Q)Z_(Q))^(T). The distance between the two reference points “P” and “Q” is√{square root over ((X _(P) −X _(Q))²+(Y _(P) −Y _(Q))²+(Z _(P) −Z_(Q))²)}=L ₀

In one embodiment, as shown in FIG. 8, if the two reference points “P”and “Q” are located on the surface F₀ of the box object 30, thepositions of these points “P” and “Q” respectively satisfy linearequationsA ₀ X _(P) +B ₀ Y _(P) +C ₀ Z _(P) =D ₀ and A ₀ X _(Q) +B ₀ Y _(Q) +C ₀Z _(Q) =D ₀.The positions of the points “P” and “Q” in the device coordinateO{circumflex over (X)}Ŷ{circumflex over (Z)} is related to the positionsof the points “p” and “q” in the captured image. Specifically, if theposition of the point “p” in the captured image is (x_(P) y_(P)) and theposition of the point “q” in the captured image is (x_(Q) Y_(Q)), thepositions of the points “P” and “Q” in the device coordinate are relatedby the following equations:(X _(P) Y _(P) Z _(P))^(T)=(x′ _(P) y′ _(P)1)^(T) Z _(P), and(X _(Q) Y _(Q) Z _(Q))^(T)=(x′ _(Q) y′ _(Q)1)^(T) Z _(Q).with(x′ _(P) y′ _(P)1)^(T) =RK ⁻¹(x _(P) y _(P)1)^(T), and(x′ _(Q) y′ _(Q)1)^(T) =RK ⁻¹(x _(Q) y _(Q)1)^(T).From above equations, it can be determined that

$Z_{P} = \frac{L_{0}}{\sqrt{( {x_{P}^{\prime} - {kx}_{Q}^{\prime}} )^{2} + ( {y_{P}^{\prime} - {ky}_{Q}^{\prime}} )^{2} + ( {1 - k} )^{2}}}$with$k = {\frac{{A_{0}x_{P}^{\prime}} + {B_{0}y_{P}^{\prime}} + C_{0}}{{A_{0}x_{Q}^{\prime}} + {B_{0}y_{Q}^{\prime}} + C_{0}} = \frac{Z_{Q}}{Z_{P}}}$

After the position (X_(P) Y_(P) Z_(P))^(T) of the point “P” isdetermined, the position (X Y Z)^(T) of any point on the surface F₀ inthe device coordinate O{circumflex over (X)}Ŷ{circumflex over (Z)} canbe determined from the position of its corresponding point in thecaptured image. In particular, the position (X_(i) Y_(i) Z_(i))^(T) ofthe corner point V_(i) as shown in FIG. 8—for i=0, 1, or 2—can bedetermined from the position (x_(i) y_(i)) of the corner point v_(i) inthe captured image as shown in FIG. 10. Specifically, the positions (X₀Y₀ Z₀)^(T), (X₁ Y₁ Z₁)^(T), and (X₂ Y₂ Z₂)^(T) can be determined fromthe following equations:

$\begin{pmatrix}X_{i} & Y_{i} & Z_{i}\end{pmatrix}^{T} = {\begin{pmatrix}x_{i}^{\prime} & y_{i}^{\prime} & 1\end{pmatrix}^{T}Z_{P}\frac{{A_{0}x_{P}^{\prime}} + {B_{0}y_{P}^{\prime}} + C_{0}}{{A_{0}x_{i}^{\prime}} + {B_{0}y_{i}^{\prime}} + C_{0}}}$${{{with}\begin{pmatrix}x_{i}^{\prime} & y_{i}^{\prime} & 1\end{pmatrix}}^{T} = {{RK}^{- 1}\begin{pmatrix}x_{i} & y_{i} & 1\end{pmatrix}}^{T}},$for i=0, 1, and 2. Similarly, the position of the corner point M₀ asshown in FIG. 8 can be determined from the position of the corner pointm₀ in the captured image as shown in FIG. 10.

After the position (X₀ Y₀ Z₀)^(T) of the point V₀ is determined, theposition (X Y Z)^(T) of any point on the surface F₁ in the devicecoordinate O{circumflex over (X)}Ŷ{circumflex over (Z)} can bedetermined from the position of its corresponding point in the capturedimage. In particular, the position (X₅ Y₅ Z₅)^(T) of the corner point V₅as shown in FIG. 8, can be determined from the position (x₅ y₅) of thecorner point v₅ in the captured image as shown in FIG. 10.

$\begin{pmatrix}X_{5} & Y_{5} & Z_{5}\end{pmatrix}^{T} = {\begin{pmatrix}x_{0}^{\prime} & y_{0}^{\prime} & 1\end{pmatrix}^{T}Z_{0}\frac{{A_{1}x_{0}^{\prime}} + {B_{1}y_{0}^{\prime}} + C_{1}}{{A_{1}x_{5}^{\prime}} + {B_{1}y_{5}^{\prime}} + C_{1}}}$${{with}\begin{pmatrix}x_{5}^{\prime} & y_{5}^{\prime} & 1\end{pmatrix}}^{T} = {{{RK}^{- 1}\begin{pmatrix}x_{5} & y_{5} & 1\end{pmatrix}}^{T}.}$

After the position (X₂ Y₂ Z₂)^(T) of the point V₂ is determined, theposition (X Y Z)^(T) of any point on the surface F₂ in the devicecoordinate O{circumflex over (X)}Ŷ{circumflex over (Z)} can bedetermined from the position of its corresponding point in the capturedimage. In particular, the position (X_(i) Y_(i) Z_(i))^(T) of the cornerpoint V_(i) as shown in FIG. 8—for i=3 or 4—can be determined from theposition (x_(i) y_(i)) of the corner point v_(i) in the captured imageas shown in FIG. 10. Specifically, the positions (X₃ Y₃ Z₃)^(T) and (X₄Y₄ Z₄)^(T) can be determined from the following equations:

$\begin{pmatrix}X_{i} & Y_{i} & Z_{i}\end{pmatrix}^{T} = {\begin{pmatrix}x_{i}^{\prime} & y_{i}^{\prime} & 1\end{pmatrix}^{T}Z_{2}\frac{{A_{2}x_{2}^{\prime}} + {B_{2}y_{2}^{\prime}} + C_{2}}{{A_{2}x_{i}^{\prime}} + {B_{2}y_{i}^{\prime}} + C_{2}}}$${{with}\begin{pmatrix}x_{i}^{\prime} & y_{i}^{\prime} & 1\end{pmatrix}}^{T} = {{RK}^{- 1}\begin{pmatrix}x_{i} & y_{i} & 1\end{pmatrix}}^{T}$for i=3 and 4.

In the method 200 as shown in FIG. 7, after the positions of at leastfour corner points of the box object in object space are determined atblock 270, the volume of the box object 30 is determined at block 280.In some implementations, the volume of the box object 30 can bedetermined directly from the positions of the at least four cornerpoints of the box object in object space. In some implementations, thebox dimensions including the width, the length, and the height of thebox object 30 are determined first before the volume of the box object30 is calculated. In the method 200 as shown in FIG. 7, proceeding fromblock 280 to block 290, the volume of the box object is displayed on adisplay screen. In some implementations, after the positions of at leastfour corner points are determined at block 270, the width, the length,and the height of the box object 30 are determined and displayed on adisplay screen as shown in FIG. 4B.

FIGS. 11A-11B illustrate an alternative embodiment for determining thenormal vector of a face of the box object in accordance with someembodiments. In FIG. 11A, a two-dimensional barcode 35 is placed on aface of the box object 30, and the corner points of the barcode 35 areused as reference points R₀, R₁, R₂, and R₃. In the captured image ofthe box object 30, as shown in FIG. 11B, the corner points of thebarcode 35 are r₀, r₁, r₂, and r₃. The line connecting the points r₀ andr₁ is e₀₁, the line connecting the points r₃ and r₂ is e₃₂, the lineconnecting the points r₃ and r₀ is e₃₀, and the line connecting thepoints r₂ and r₁ is e₂₁. With multiple view geometry, the vanishingpoints be calculated from the cross product of two lines selected fromlines {right arrow over (e)}₀₁, {right arrow over (e)}₃₂, {right arrowover (e)}₃₀, and {right arrow over (e)}₂₁. Specifically, {right arrowover (ω)}₀={right arrow over (e)}₀₁×{right arrow over (e)}₃₂, and {rightarrow over (ω)}₁={right arrow over (e)}₃₀×{right arrow over (e)}₂₁.Vanishing line {right arrow over (λ)}₀ can be calculated from the crossproduct of the vanishing points, that is, {right arrow over (λ)}₀={rightarrow over (ω)}₀×{right arrow over (ω)}₁. The normal vectors {rightarrow over (N)}₀ of the face F₀ can be calculated from the vanishinglines {right arrow over (λ)}₀ and the matrix K that maps a point (x y1)^(T) in a homogeneous coordinate to a point (x′ y′ 1)^(T) in thedevice coordinate O{circumflex over (X)}Ŷ{circumflex over (Z)}.

Additionally, if the distance between any two of the four referencepoints R₀, R₁, R₂, and R₃ is known, the position (X Y Z)^(T) of anypoint on the surface F₀ in the device coordinate O{circumflex over(X)}Ŷ{circumflex over (Z)} can be determined from the position of itscorresponding point in the captured image. If the normal vectors {rightarrow over (N)}₁ and {right arrow over (N)}₂ of faces F₁ and F₂ are alsodetermined independently, such as, from additional corner points of thebox object, the dimensions and the volume of the box object can bedetermined. In one embodiment, vanishing point {right arrow over (ω)}₂can be determined from four corner points of the box object, such as,points V₀, V₂, V₃, and V₅—as shown in FIG. 8—in the captured image. Insuch embodiment, using the newly determined ω₂ and previously determinedvanishing points {right arrow over (ω)}₀ and {right arrow over (ω)}₁,the normal vectors {right arrow over (N)}₁ and {right arrow over (N)}₂of faces F₁ and F2 can be determined. If a fifth corner point (e.g., thepoint V₁, or M₀) in the captured image is also identified, all requireddimensions for determining the volume of the box object 30 (e.g., thewidth, the length, and the height) can all be subsequently calculated.

In another embodiment, vanishing point {right arrow over (ω)}₂ can bedetermined from four reference points on the face F₁ or the face F₂. Forexample, these four reference points can be the corner points of anothershipping label (or another barcode) placed on the face F₁ or the faceF₂. In this embodiment, four corner positions (e.g., the points V₀, V₁,V₂, and V₃—as shown in FIG. 8) of the box object 30 will be sufficientto determine the volume of the box object.

In another implementation as shown in FIG. 12, a shipping label 35 isplaced on a face of the box object 30, and the corner points of theshipping label 35 are used as reference points, R₀, R₁, R₂, and R₃, fordetermining the normal vectors {right arrow over (N)}₀ of the face F₀,and for determining the position (X Y Z)^(T) of any point on the surfaceF₀ in the device coordinate O{circumflex over (X)}Ŷ{circumflex over(Z)}. In some implementations, not all of the reference points, R₀, R₁,R₂, and R₃ need to be the corner points of the shipping label (or thebarcode); that is, one or more identifiable points on the shipping label(or the barcode) can also be used as the reference points. In someimplementations, one or more corner points of the box object 30 can alsobe used as the reference points.

In the foregoing specification, specific embodiments have beendescribed. However, one of ordinary skill in the art appreciates thatvarious modifications and changes can be made without departing from thescope of the invention as set forth in the claims below. Accordingly,the specification and figures are to be regarded in an illustrativerather than a restrictive sense, and all such modifications are intendedto be included within the scope of present teachings.

For example, people skilled in the art may find many methods to find thenormal vectors {right arrow over (N)}₀, {right arrow over (N)}₁, and{right arrow over (N)}₂ in FIG. 8 from the positions of the six cornerpoints v₀, v₁, v₂, v₃, v₄, and v₅ in the captured image as shown in FIG.10. People skilled in the art may also find many methods to find thenormal vectors {right arrow over (N)}₀, {right arrow over (N)}₁, and{right arrow over (N)}₂ in FIG. 8 from the positions of the six cornerpoints v₀, v₁, v₂, v₃, v₄, and m₀ in the captured image as shown in FIG.10. In addition, for the method 200 as described in FIG. 7, more thansix corner points can be used to find the normal vectors {right arrowover (N)}₀, {right arrow over (N)}₁, and {right arrow over (N)}₂, andthe redundancy of the corner points can be used to improve the accuracyof the results based on some known methods, such as, curve fitting,parameter fitting, or result-averaging. Similarly, more than tworeference points on a geometric mark (e.g., a shipping label, or a logo)on the surface of the box object can be used to improve the accuracy ofthe final results, such as, the accuracy of the volume or the boxdimensions that are estimated from the captured image. Additionally, forthe method as described with respect to FIGS. 11A-11B, more than fourreference points on a geometric mark on the surface of the box objectcan be used to improve the accuracy of the final results, and more thanfive corner points of the box object can also be used to improve theaccuracy of the final results.

The benefits, advantages, solutions to problems, and any element(s) thatmay cause any benefit, advantage, or solution to occur or become morepronounced are not to be construed as a critical, required, or essentialfeatures or elements of any or all the claims. The invention is definedsolely by the appended claims including any amendments made during thependency of this application and all equivalents of those claims asissued.

Moreover in this document, relational terms such as first and second,top and bottom, and the like may be used solely to distinguish oneentity or action from another entity or action without necessarilyrequiring or implying any actual such relationship or order between suchentities or actions. The terms “comprises,” “comprising,” “has”,“having,” “includes”, “including,” “contains”, “containing” or any othervariation thereof, are intended to cover a non-exclusive inclusion, suchthat a process, method, article, or apparatus that comprises, has,includes, contains a list of elements does not include only thoseelements but may include other elements not expressly listed or inherentto such process, method, article, or apparatus. An element proceeded by“comprises . . . a”, “has . . . a”, “includes . . . a”, “contains . . .a” does not, without more constraints, preclude the existence ofadditional identical elements in the process, method, article, orapparatus that comprises, has, includes, contains the element. The terms“a” and “an” are defined as one or more unless explicitly statedotherwise herein. The terms “substantially”, “essentially”,“approximately”, “about” or any other version thereof, are defined asbeing close to as understood by one of ordinary skill in the art, and inone non-limiting embodiment the term is defined to be within 10%, inanother embodiment within 5%, in another embodiment within 1% and inanother embodiment within 0.5%. The term “coupled” as used herein isdefined as connected, although not necessarily directly and notnecessarily mechanically. A device or structure that is “configured” ina certain way is configured in at least that way, but may also beconfigured in ways that are not listed.

It will be appreciated that some embodiments may be comprised of one ormore generic or specialized processors (or “processing devices”) such asmicroprocessors, digital signal processors, customized processors andfield programmable gate arrays (FPGAs) and unique stored programinstructions (including both software and firmware) that control the oneor more processors to implement, in conjunction with certainnon-processor circuits, some, most, or all of the functions of themethod and/or apparatus described herein. Alternatively, some or allfunctions could be implemented by a state machine that has no storedprogram instructions, or in one or more application specific integratedcircuits (ASICs), in which each function or some combinations of certainof the functions are implemented as custom logic. Of course, acombination of the two approaches could be used.

Moreover, an embodiment can be implemented as a computer-readablestorage medium having computer readable code stored thereon forprogramming a computer (e.g., comprising a processor) to perform amethod as described and claimed herein. Examples of suchcomputer-readable storage mediums include, but are not limited to, ahard disk, a CD-ROM, an optical storage device, a magnetic storagedevice, a ROM (Read Only Memory), a PROM (Programmable Read OnlyMemory), an EPROM (Erasable Programmable Read Only Memory), an EEPROM(Electrically Erasable Programmable Read Only Memory) and a Flashmemory. Further, it is expected that one of ordinary skill,notwithstanding possibly significant effort and many design choicesmotivated by, for example, available time, current technology, andeconomic considerations, when guided by the concepts and principlesdisclosed herein will be readily capable of generating such softwareinstructions and programs and ICs with minimal experimentation.

The Abstract of the Disclosure is provided to allow the reader toquickly ascertain the nature of the technical disclosure. It issubmitted with the understanding that it will not be used to interpretor limit the scope or meaning of the claims. In addition, in theforegoing Detailed Description, it can be seen that various features aregrouped together in various embodiments for the purpose of streamliningthe disclosure. This method of disclosure is not to be interpreted asreflecting an intention that the claimed embodiments require morefeatures than are expressly recited in each claim. Rather, as thefollowing claims reflect, inventive subject matter lies in less than allfeatures of a single disclosed embodiment. Thus the following claims arehereby incorporated into the Detailed Description, with each claimstanding on its own as a separately claimed subject matter.

What is claimed is:
 1. A method comprising: detecting light from a boxobject through an imaging lens arrangement with an imaging sensor havingtwo-dimensional photosensitive elements to capture at least one image ofthe box object, wherein the box object has the shape of a rectangularsolid; identifying a geometric mark with fixed dimensions on the boxobject in the at least one image to find positions of at least tworeference points of the geometric mark in the at least one image,wherein the at least two reference points are separated by apredetermined distance; identifying corners of the box object in the atleast one image; determining, using a processor and based on the cornersidentified in the at least one image, normal vectors corresponding toorientations of faces of the box object; determining, using theprocessor and based on (i) the normal vectors and (ii) the positions ofthe at least two reference points, positions of at least four cornerpoints of the box object in an object space; determining, using theprocessor and based on the positions of the at least four corner pointsin the object space, dimensions of the box object, with the boxdimensions including the width, the length, and the height of the boxobject.
 2. The method of claim 1, wherein the geometric mark includesone of a barcode, a logo, and a shipping label.
 3. The method of claim1, wherein the geometric mark includes two isolated point marks.
 4. Themethod of claim 1, further comprising: identifying edges of the boxobject based on the corners identified in the at least one image,wherein determining the normal vectors is further based on theidentified edges.
 5. The method of claim 1, further comprising: findingpositions of at least four reference points of the geometric mark in theat least one image.
 6. The method of claim 1, further comprising:finding positions of at least four reference points of the geometricmark in the at least one image; and finding positions of at least fourreference points of another geometric mark in the at least one image. 7.A method comprising: detecting light from a box object through animaging lens arrangement with an imaging sensor having two-dimensionalphotosensitive elements to capture at least one image of the box object,wherein the box object has the shape of a rectangular solid; identifyingat least two reference points on a surface of the box object to findpositions of the at least two reference points in the at least oneimage, wherein the at least two reference points are two fixed pointsthat are stationary in a coordinate fixed on the box object and the atleast two reference points are separated by a predetermined distance onthe surface of the box object, the predetermined distance beingindependent of geometric orientation of the box object; identifyingcorners of the box object in the at least one image; determining, usinga processor and based on the corners of the box object, normal vectorsindicative of face orientations corresponding to surfaces of the boxobject; determining, using the processor and based on (i) the normalvectors, (ii) the positions of the at least two reference points, and(iii) the predetermined distance separating the at least two referencepoints, positions of at least four corner points of the box object in anobject space; determining, using the processor, dimensions of the boxobject based on the positions of the at least four corner points in theobject space, with the box dimensions including the width, the length,and the height of the box object.
 8. The method of claim 7, furthercomprising: determining a mapping in a calibration process.
 9. Themethod of claim 8, wherein the mapping is operative to establish aone-to-one corresponding relationship between a point in an image planeof the imaging sensor and a point in a reference plane in physicalspace.
 10. The method of claim 8, wherein the mapping is a matrix thatmodels intrinsic parameters of an imaging system that includes theimaging lens arrangement and the imaging sensor.
 11. The method of claim7, further comprising: determining a volume of the box object based onthe dimensions.
 12. The method of claim 7, further comprising:displaying the width, the length, and the height of the box object. 13.The method of claim 7, further comprising: displaying at least one ofthe width, the length, and the height of the box object.
 14. The methodof claim 7, further comprising: identifying at least six corners of thebox object to find the positions of the at least six corners in the atleast one image.
 15. The method of claim 7, further comprising:processing multiple images to identify the corners of the box object.16. The method of claim 7, further comprising: identifying edges of thebox object based on the corners identified in the at least one image,wherein determining the normal vectors is further based on theidentified edges.
 17. The method of claim 7, further comprising:processing the at least one image to identify at least one of the atleast two reference points.
 18. The method of claim 7, furthercomprising: processing the at least one image to identify all of the atleast two reference points.
 19. The method of claim 7, furthercomprising: displaying the at least one image of the box object on adisplay screen; and identifying at least one corner of the box objectwith a user-selected position on the display screen.
 20. The method ofclaim 7, further comprising: displaying the at least one image of thebox object on a display screen; and identifying at least one of thereference points with a user-selected position on the display screen.21. An apparatus comprising: an imaging lens arrangement; an imagingsensor having two-dimensional photosensitive elements configured todetect light from a box object through the imaging lens arrangement andconfigured to capture at least one image of the box object that has theshape of a rectangular solid; a controller operative to decode a barcodeand operative to determine dimensions of the box object by: determiningpositions of the two reference points on a surface of the box object inthe at least one image, the two reference points being spaced apart by aknown distance; identifying corners of the box object in the at leastone image; determining normal vectors of the box object based onpositions of the corners in the at least one image; determiningpositions of corners of the box in an object space based on (i) thenormal vectors, (ii) the positions of the two reference points in the atleast one image with the two reference points being at fixed positionsin a coordinate fixed on the box object, and (iii) a predeterminedmapping operative to establish a one-to-one corresponding relationshipbetween a point in an image plane of the imaging sensor and a point inphysical space.
 22. The apparatus of claim 21, comprising: a displayscreen operative to display the at least one image of the box object andto display a user-selected position specifying at least one corner ofthe box object in the at least one image.
 23. The apparatus of claim 21,comprising: a display screen operative to display the at least one imageof the box object and to display a user-selected position specifying atleast one of the two reference points in the at least one image.